package com.mtk.launcher.util;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;

public class AppVersionUtils {

    /**
     * 获取应用版本名称（如：1.0.0）
     *
     * @param context 上下文
     * @return 版本名称，如果获取失败则返回空字符串
     */
    public static String getVersionName(Context context) {
        try {
            PackageManager packageManager = context.getPackageManager();
            PackageInfo packageInfo = packageManager.getPackageInfo(
                    context.getPackageName(), 0);
            return packageInfo.versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            return "";
        }
    }

    /**
     * 获取应用版本号（如：1）
     *
     * @param context 上下文
     * @return 版本号，如果获取失败则返回-1
     */
    public static int getVersionCode(Context context) {
        try {
            PackageManager packageManager = context.getPackageManager();
            PackageInfo packageInfo = packageManager.getPackageInfo(
                    context.getPackageName(), 0);

            // 兼容Android 10及以上版本
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
                return (int) packageInfo.getLongVersionCode();
            } else {
                return packageInfo.versionCode;
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            return -1;
        }
    }

    /**
     * 获取完整的版本信息（版本名称和版本号）
     *
     * @param context 上下文
     * @return 版本信息字符串
     */
    public static String getFullVersionInfo(Context context) {
        String versionName = getVersionName(context);
        int versionCode = getVersionCode(context);
        return "Version: " + versionName + "_" + versionCode;
    }
}
